
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>

<HEAD>
   <TITLE>mxvg_c</TITLE>
</HEAD>

<BODY style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<A name="TOP"></A>

<table style="text-align: left; margin-left: auto; margin-right: auto; width: 800px;"
 border="0" cellpadding="5" cellspacing="2">
  <tbody>
    <tr>
      <td style="background-color: rgb(153, 153, 153); vertical-align: middle; text-align: center;">
      <div align="right"> 
      <small><small><a href="index.html">Index Page</a></small></small>
      </div>
      <b>mxvg_c</b> </td>
    </tr>

    <tr>
      <td style="vertical-align: top;">

<small><div align="center">
<A HREF="index.html#A">A</A>&nbsp;
<A HREF="index.html#B">B</A>&nbsp;
<A HREF="index.html#C">C</A>&nbsp;
<A HREF="index.html#D">D</A>&nbsp;
<A HREF="index.html#E">E</A>&nbsp;
<A HREF="index.html#F">F</A>&nbsp;
<A HREF="index.html#G">G</A>&nbsp;
<A HREF="index.html#H">H</A>&nbsp;
<A HREF="index.html#I">I</A>&nbsp;
<A HREF="index.html#J">J</A>&nbsp;
<A HREF="index.html#K">K</A>&nbsp;
<A HREF="index.html#L">L</A>&nbsp;
<A HREF="index.html#M">M</A>&nbsp;
<A HREF="index.html#N">N</A>&nbsp;
<A HREF="index.html#O">O</A>&nbsp;
<A HREF="index.html#P">P</A>&nbsp;
<A HREF="index.html#Q">Q</A>&nbsp;
<A HREF="index.html#R">R</A>&nbsp;
<A HREF="index.html#S">S</A>&nbsp;
<A HREF="index.html#T">T</A>&nbsp;
<A HREF="index.html#U">U</A>&nbsp;
<A HREF="index.html#V">V</A>&nbsp;
<A HREF="index.html#W">W</A>&nbsp;
<A HREF="index.html#X">X</A>&nbsp;
</div></small>
       <br>
       <table style="text-align: left; width: 60%; margin-left: auto; margin-right: auto;"
       border="0" cellspacing="2" cellpadding="2">
        <tbody>
          <tr>
            <td style="width: 50%; text-align: center;">
            <small>
              <a href="#Procedure">Procedure<br></a>
              <a href="#Abstract">Abstract<br></a>
              <a href="#Required_Reading">Required_Reading<br></a>
              <a href="#Keywords">Keywords<br></a>
              <a href="#Brief_I/O">Brief_I/O<br></a>
              <a href="#Detailed_Input">Detailed_Input<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Detailed_Output">Detailed_Output<br></a>
              <a href="#Parameters">Parameters<br></a>
              <a href="#Exceptions">Exceptions<br></a>
              <a href="#Files">Files<br></a>
              <a href="#Particulars">Particulars<br></a>
              <a href="#Examples">Examples<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Restrictions">Restrictions<br></a>
              <a href="#Literature_References">Literature_References<br></a>
              <a href="#Author_and_Institution">Author_and_Institution<br></a>
              <a href="#Version">Version<br></a>
              <a href="#Index_Entries">Index_Entries<br></a>
             </small>
            </td>
          </tr>
        </tbody>
</table>

<h4><a name="Procedure">Procedure</a></h4>
<PRE>
   void mxvg_c ( const void   * m1,
                 const void   * v2,
                 SpiceInt       nrow1,
                 SpiceInt       nc1r2,
                 void         * vout   )
</PRE>
<h4><a name="Abstract">Abstract</a></h4>
<PRE>
   Multiply a matrix and a vector of arbitrary size.
</PRE>
<h4><a name="Required_Reading">Required_Reading</a></h4>
<PRE>
   None.
</PRE>
<h4><a name="Keywords">Keywords</a></h4>
<PRE>
   MATRIX,  VECTOR


</PRE>
<h4><a name="Brief_I/O">Brief_I/O</a></h4>
<PRE>
   VARIABLE  I/O  DESCRIPTION
   --------  ---  --------------------------------------------------
   m1         I   Left-hand matrix to be multiplied.
   v2         I   Right-hand vector to be multiplied.
   nrow1      I   Row dimension of m1 and length of vout.
   nc1r2      I   Column dimension of m1 and length of v2.
   vout       O   Product vector m1*v2.
</PRE>
<h4><a name="Detailed_Input">Detailed_Input</a></h4>
<PRE>
   m1         is a double precision matrix of arbitrary size which
              forms the left-hand matrix of the multiplication.

   v2         is a double precision vector on the right of the
              multiplication.

   nrow1      is the row dimension of m1 and length of vout.

   nc1r2      is the column dimension of m1 and length of v2.
</PRE>
<h4><a name="Detailed_Output">Detailed_Output</a></h4>
<PRE>
   vout       is the double precision vector which results from
              the multiplication

                 vout = (m1) x v2

              vout has length nrow1.

              vout may overwrite m1 or v2.  Note that this capability
              does not exist in the Fortran version of SPICELIB; in the
              Fortran version, the output must not overwrite either
              input.
</PRE>
<h4><a name="Parameters">Parameters</a></h4>
<PRE>
   None.
</PRE>
<h4><a name="Exceptions">Exceptions</a></h4>
<PRE>
   Error free.
</PRE>
<h4><a name="Files">Files</a></h4>
<PRE>
   None.
</PRE>
<h4><a name="Particulars">Particulars</a></h4>
<PRE>
    The code reflects precisely the following mathematical expression

       For each value of the subscript i from 1 to nrow1,

       vout(i) = Summation from k=1 to nc1r2 of  ( m1(i,k) * v2(k) )
</PRE>
<h4><a name="Examples">Examples</a></h4>
<PRE>
   1)  Suppose that

          M1 = | 1  1  1 |
               | 2  3  4 |

       and that

               | 1 |
          V2 = | 2 |
               | 3 |


       Then calling <b>mxvg_c</b> as shown

          <b>mxvg_c</b> ( m1, v2, 2, 3, vout );


       will yield the following vector value for vout:

          vout = | 6  |
                 | 20 |
</PRE>
<h4><a name="Restrictions">Restrictions</a></h4>
<PRE>
   1) The user is responsible for checking the magnitudes of the
      elements of m1 and v2 so that a floating point overflow does
      not occur.
</PRE>
<h4><a name="Literature_References">Literature_References</a></h4>
<PRE>
   None.
</PRE>
<h4><a name="Author_and_Institution">Author_and_Institution</a></h4>
<PRE>
   N.J. Bachman    (JPL)
   W.M. Owen       (JPL)
</PRE>
<h4><a name="Version">Version</a></h4>
<PRE>
   -CSPICE Version 1.1.0, 25-JUL-2001   (NJB)

      Changed protoype:  inputs m1 and v2 are now type (const void *).
      Implemented interface macro for casting inputs m1 and v2 to 
      const.

   -CSPICE Version 1.0.1, 08-FEB-1998 (NJB)

      Corrected a comment describing the local macro INDEX.   Made
      miscellaneous code format corrections.

   -CSPICE Version 1.0.0, 25-OCT-1997 (NJB)

      Based on SPICELIB Version 1.0.1, 10-MAR-1992 (WLT)
</PRE>
<h4><a name="Index_Entries">Index_Entries</a></h4>
<PRE>
   matrix times n-dimensional vector
</PRE>
<h4>Link to routine mxvg_c source file <a href='../../../src/cspice/mxvg_c.c'>mxvg_c.c</a> </h4>

      </td>
    </tr>
  </tbody>
</table>

   <pre>Wed Jun  9 13:05:26 2010</pre>

</body>
</html>

